package org.example.DesignPatterns.Proxy.Internet;

import java.lang.reflect.Proxy;

/**
 * @description:
 * @author: farprt
 * @create: 2022-09-18 15:45
 **/
public class Client {

    public static void main(String[] args) throws Exception {
//        Internet proxy=new RouterProxy(); //实例化的是代理
//        proxy.httpAccess("http://www.Game.com");
//        proxy.httpAccess("http://www.work.com");

        //访问互联网,生成路由器代理
        //将过滤器功能与被代理对象组装在一起，动态生成代理对象
        Internet internet=(Internet) Proxy.newProxyInstance(
                RouterProxy.class.getClassLoader(),
                RouterProxy.class.getInterfaces(),
                new BlackListFilter(new RouterProxy())
        );
        internet.httpAccess("http://www.Game.com");
        internet.httpAccess("http://www.work.com");

        Intranet intranet=(Intranet)Proxy.newProxyInstance(
                Switch.class.getClassLoader(),
                Switch.class.getInterfaces(),
                new BlackListFilter(new Switch())
        );
        intranet.fileAccess("\\\\192.68.1.2\\Shared\\Game");
        intranet.fileAccess("\\\\192.68.1.4\\Shared\\Work");

    }
}